{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'source': '结点1', 'target': '结点1'}, {'source': '结点1', 'target': '结点2'}, {'source': '结点1', 'target': '结点3'}, {'source': '结点1', 'target': '结点4'}, {'source': '结点1', 'target': '结点5'}, {'source': '结点1', 'target': '结点6'}, {'source': '结点1', 'target': '结点7'}, {'source': '结点1', 'target': '结点8'}, {'source': '结点2', 'target': '结点1'}, {'source': '结点2', 'target': '结点2'}, {'source': '结点2', 'target': '结点3'}, {'source': '结点2', 'target': '结点4'}, {'source': '结点2', 'target': '结点5'}, {'source': '结点2', 'target': '结点6'}, {'source': '结点2', 'target': '结点7'}, {'source': '结点2', 'target': '结点8'}, {'source': '结点3', 'target': '结点1'}, {'source': '结点3', 'target': '结点2'}, {'source': '结点3', 'target': '结点3'}, {'source': '结点3', 'target': '结点4'}, {'source': '结点3', 'target': '结点5'}, {'source': '结点3', 'target': '结点6'}, {'source': '结点3', 'target': '结点7'}, {'source': '结点3', 'target': '结点8'}, {'source': '结点4', 'target': '结点1'}, {'source': '结点4', 'target': '结点2'}, {'source': '结点4', 'target': '结点3'}, {'source': '结点4', 'target': '结点4'}, {'source': '结点4', 'target': '结点5'}, {'source': '结点4', 'target': '结点6'}, {'source': '结点4', 'target': '结点7'}, {'source': '结点4', 'target': '结点8'}, {'source': '结点5', 'target': '结点1'}, {'source': '结点5', 'target': '结点2'}, {'source': '结点5', 'target': '结点3'}, {'source': '结点5', 'target': '结点4'}, {'source': '结点5', 'target': '结点5'}, {'source': '结点5', 'target': '结点6'}, {'source': '结点5', 'target': '结点7'}, {'source': '结点5', 'target': '结点8'}, {'source': '结点6', 'target': '结点1'}, {'source': '结点6', 'target': '结点2'}, {'source': '结点6', 'target': '结点3'}, {'source': '结点6', 'target': '结点4'}, {'source': '结点6', 'target': '结点5'}, {'source': '结点6', 'target': '结点6'}, {'source': '结点6', 'target': '结点7'}, {'source': '结点6', 'target': '结点8'}, {'source': '结点7', 'target': '结点1'}, {'source': '结点7', 'target': '结点2'}, {'source': '结点7', 'target': '结点3'}, {'source': '结点7', 'target': '结点4'}, {'source': '结点7', 'target': '结点5'}, {'source': '结点7', 'target': '结点6'}, {'source': '结点7', 'target': '结点7'}, {'source': '结点7', 'target': '结点8'}, {'source': '结点8', 'target': '结点1'}, {'source': '结点8', 'target': '结点2'}, {'source': '结点8', 'target': '结点3'}, {'source': '结点8', 'target': '结点4'}, {'source': '结点8', 'target': '结点5'}, {'source': '结点8', 'target': '结点6'}, {'source': '结点8', 'target': '结点7'}, {'source': '结点8', 'target': '结点8'}]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/v5/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"47f5cadf2cd04eeb882912fca5df5841\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_47f5cadf2cd04eeb882912fca5df5841 = echarts.init(\n",
       "                    document.getElementById('47f5cadf2cd04eeb882912fca5df5841'), 'white', {renderer: 'canvas'});\n",
       "                var option_47f5cadf2cd04eeb882912fca5df5841 = {\n",
       "    \"backgroundColor\": \"#FFFFFF\",\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"aria\": {\n",
       "        \"enabled\": false\n",
       "    },\n",
       "    \"color\": [\n",
       "        \"#5470c6\",\n",
       "        \"#91cc75\",\n",
       "        \"#fac858\",\n",
       "        \"#ee6666\",\n",
       "        \"#73c0de\",\n",
       "        \"#3ba272\",\n",
       "        \"#fc8452\",\n",
       "        \"#9a60b4\",\n",
       "        \"#ea7ccc\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"graph\",\n",
       "            \"layout\": \"force\",\n",
       "            \"symbolSize\": 10,\n",
       "            \"circular\": {\n",
       "                \"rotateLabel\": false\n",
       "            },\n",
       "            \"force\": {\n",
       "                \"repulsion\": 8000,\n",
       "                \"gravity\": 0.2,\n",
       "                \"edgeLength\": 30,\n",
       "                \"friction\": 0.6,\n",
       "                \"layoutAnimation\": true\n",
       "            },\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"lineStyle\": {\n",
       "                \"show\": true,\n",
       "                \"width\": 1,\n",
       "                \"opacity\": 1,\n",
       "                \"curveness\": 0.3,\n",
       "                \"type\": \"solid\",\n",
       "                \"color\": \"source\"\n",
       "            },\n",
       "            \"roam\": true,\n",
       "            \"draggable\": false,\n",
       "            \"focusNodeAdjacency\": true,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b91\",\n",
       "                    \"symbolSize\": 10\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b92\",\n",
       "                    \"symbolSize\": 20\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b93\",\n",
       "                    \"symbolSize\": 30\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b94\",\n",
       "                    \"symbolSize\": 40\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b95\",\n",
       "                    \"symbolSize\": 50\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b96\",\n",
       "                    \"symbolSize\": 40\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b97\",\n",
       "                    \"symbolSize\": 30\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7ed3\\u70b98\",\n",
       "                    \"symbolSize\": 20\n",
       "                }\n",
       "            ],\n",
       "            \"edgeLabel\": {\n",
       "                \"show\": false,\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"edgeSymbol\": [\n",
       "                null,\n",
       "                null\n",
       "            ],\n",
       "            \"edgeSymbolSize\": 10,\n",
       "            \"links\": [\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b91\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b92\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b93\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b94\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b95\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b96\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b97\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b91\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b92\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b93\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b94\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b95\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b96\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b97\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"\\u7ed3\\u70b98\",\n",
       "                    \"target\": \"\\u7ed3\\u70b98\"\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [],\n",
       "            \"selected\": {},\n",
       "            \"show\": true,\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"itemWidth\": 25,\n",
       "            \"itemHeight\": 14,\n",
       "            \"backgroundColor\": \"transparent\",\n",
       "            \"borderColor\": \"#ccc\",\n",
       "            \"borderWidth\": 1,\n",
       "            \"borderRadius\": 0,\n",
       "            \"pageButtonItemGap\": 5,\n",
       "            \"pageButtonPosition\": \"end\",\n",
       "            \"pageFormatter\": \"{current}/{total}\",\n",
       "            \"pageIconColor\": \"#2f4554\",\n",
       "            \"pageIconInactiveColor\": \"#aaa\",\n",
       "            \"pageIconSize\": 15,\n",
       "            \"animationDurationUpdate\": 800,\n",
       "            \"selector\": false,\n",
       "            \"selectorPosition\": \"auto\",\n",
       "            \"selectorItemGap\": 7,\n",
       "            \"selectorButtonGap\": 10\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"showContent\": true,\n",
       "        \"alwaysShowContent\": false,\n",
       "        \"showDelay\": 0,\n",
       "        \"hideDelay\": 100,\n",
       "        \"enterable\": false,\n",
       "        \"confine\": false,\n",
       "        \"appendToBody\": false,\n",
       "        \"transitionDuration\": 0.4,\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0,\n",
       "        \"padding\": 5,\n",
       "        \"order\": \"seriesAsc\"\n",
       "    },\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"text\": \"Graph-\\u57fa\\u672c\\u793a\\u4f8b\",\n",
       "            \"target\": \"blank\",\n",
       "            \"subtarget\": \"blank\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"textAlign\": \"auto\",\n",
       "            \"textVerticalAlign\": \"auto\",\n",
       "            \"triggerEvent\": false\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_47f5cadf2cd04eeb882912fca5df5841.setOption(option_47f5cadf2cd04eeb882912fca5df5841);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x18a95866940>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Graph\n",
    "\n",
    "nodes = [\n",
    "    {\"name\": \"结点1\", \"symbolSize\": 10},\n",
    "    {\"name\": \"结点2\", \"symbolSize\": 20},\n",
    "    {\"name\": \"结点3\", \"symbolSize\": 30},\n",
    "    {\"name\": \"结点4\", \"symbolSize\": 40},\n",
    "    {\"name\": \"结点5\", \"symbolSize\": 50},\n",
    "    {\"name\": \"结点6\", \"symbolSize\": 40},\n",
    "    {\"name\": \"结点7\", \"symbolSize\": 30},\n",
    "    {\"name\": \"结点8\", \"symbolSize\": 20},\n",
    "]\n",
    "links = []\n",
    "for i in nodes:\n",
    "    for j in nodes:\n",
    "        links.append({\"source\": i.get(\"name\"), \"target\": j.get(\"name\")})\n",
    "\n",
    "print(links)\n",
    "G = Graph(init_opts=opts.InitOpts(bg_color=\"#FFFFFF\"))\n",
    "G.add(\"\", nodes, links, repulsion=8000,linestyle_opts=opts.LineStyleOpts(color=\"source\", curve=0.3))\n",
    "G.set_global_opts(title_opts=opts.TitleOpts(title=\"Graph-基本示例\"))\n",
    "G.render_notebook()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/v5/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"25dd7f7c53c5461aba298e40152e4028\" style=\"width:1000px; height:600px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_25dd7f7c53c5461aba298e40152e4028 = echarts.init(\n",
       "                    document.getElementById('25dd7f7c53c5461aba298e40152e4028'), 'white', {renderer: 'canvas'});\n",
       "                var option_25dd7f7c53c5461aba298e40152e4028 = {\n",
       "    \"backgroundColor\": \"#FFFFFF\",\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"aria\": {\n",
       "        \"enabled\": false\n",
       "    },\n",
       "    \"color\": [\n",
       "        \"#5470c6\",\n",
       "        \"#91cc75\",\n",
       "        \"#fac858\",\n",
       "        \"#ee6666\",\n",
       "        \"#73c0de\",\n",
       "        \"#3ba272\",\n",
       "        \"#fc8452\",\n",
       "        \"#9a60b4\",\n",
       "        \"#ea7ccc\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"graph\",\n",
       "            \"layout\": \"circular\",\n",
       "            \"symbolSize\": 10,\n",
       "            \"circular\": {\n",
       "                \"rotateLabel\": true\n",
       "            },\n",
       "            \"force\": {\n",
       "                \"repulsion\": 50,\n",
       "                \"gravity\": 0.2,\n",
       "                \"edgeLength\": 30,\n",
       "                \"friction\": 0.6,\n",
       "                \"layoutAnimation\": true\n",
       "            },\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"right\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"lineStyle\": {\n",
       "                \"show\": true,\n",
       "                \"width\": 1,\n",
       "                \"opacity\": 1,\n",
       "                \"curveness\": 0.3,\n",
       "                \"type\": \"solid\",\n",
       "                \"color\": \"source\"\n",
       "            },\n",
       "            \"roam\": true,\n",
       "            \"draggable\": false,\n",
       "            \"focusNodeAdjacency\": true,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"id\": \"0\",\n",
       "                    \"name\": \"Myriel\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": -266.82776,\n",
       "                    \"y\": 299.6904,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"1\",\n",
       "                    \"name\": \"Napoleon\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -418.08344,\n",
       "                    \"y\": 446.8853,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"2\",\n",
       "                    \"name\": \"MlleBaptistine\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -212.76357,\n",
       "                    \"y\": 245.29176,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"3\",\n",
       "                    \"name\": \"MmeMagloire\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -242.82404,\n",
       "                    \"y\": 235.26283,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"4\",\n",
       "                    \"name\": \"CountessDeLo\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -379.30386,\n",
       "                    \"y\": 429.06424,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"5\",\n",
       "                    \"name\": \"Geborand\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -417.26337,\n",
       "                    \"y\": 406.03506,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"6\",\n",
       "                    \"name\": \"Champtercier\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -332.6012,\n",
       "                    \"y\": 485.16974,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"7\",\n",
       "                    \"name\": \"Cravatte\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -382.69568,\n",
       "                    \"y\": 475.09113,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"8\",\n",
       "                    \"name\": \"Count\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -320.384,\n",
       "                    \"y\": 387.17325,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"9\",\n",
       "                    \"name\": \"OldMan\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -344.39832,\n",
       "                    \"y\": 451.16772,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"10\",\n",
       "                    \"name\": \"Labarre\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -89.34107,\n",
       "                    \"y\": 234.56128,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"11\",\n",
       "                    \"name\": \"Valjean\",\n",
       "                    \"symbolSize\": 66.66666666666667,\n",
       "                    \"x\": -87.93029,\n",
       "                    \"y\": -6.8120565,\n",
       "                    \"value\": 100,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"12\",\n",
       "                    \"name\": \"Marguerite\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -339.77908,\n",
       "                    \"y\": -184.69139,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"13\",\n",
       "                    \"name\": \"MmeDeR\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -194.31313,\n",
       "                    \"y\": 178.55301,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"14\",\n",
       "                    \"name\": \"Isabeau\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -158.05168,\n",
       "                    \"y\": 201.99768,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"15\",\n",
       "                    \"name\": \"Gervais\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -127.701546,\n",
       "                    \"y\": 242.55057,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"16\",\n",
       "                    \"name\": \"Tholomyes\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": -385.2226,\n",
       "                    \"y\": -393.5572,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"17\",\n",
       "                    \"name\": \"Listolier\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -516.55884,\n",
       "                    \"y\": -393.98975,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"18\",\n",
       "                    \"name\": \"Fameuil\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -464.79382,\n",
       "                    \"y\": -493.57944,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"19\",\n",
       "                    \"name\": \"Blacheville\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -515.1624,\n",
       "                    \"y\": -456.9891,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"20\",\n",
       "                    \"name\": \"Favourite\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -408.12122,\n",
       "                    \"y\": -464.5048,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"21\",\n",
       "                    \"name\": \"Dahlia\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -456.44113,\n",
       "                    \"y\": -425.13303,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"22\",\n",
       "                    \"name\": \"Zephine\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -459.1107,\n",
       "                    \"y\": -362.5133,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"23\",\n",
       "                    \"name\": \"Fantine\",\n",
       "                    \"symbolSize\": 28.266666666666666,\n",
       "                    \"x\": -313.42786,\n",
       "                    \"y\": -289.44803,\n",
       "                    \"value\": 42.4,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"24\",\n",
       "                    \"name\": \"MmeThenardier\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 4.6313396,\n",
       "                    \"y\": -273.8517,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"25\",\n",
       "                    \"name\": \"Thenardier\",\n",
       "                    \"symbolSize\": 30.095235333333335,\n",
       "                    \"x\": 82.80825,\n",
       "                    \"y\": -203.1144,\n",
       "                    \"value\": 45.142853,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"26\",\n",
       "                    \"name\": \"Cosette\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 78.64646,\n",
       "                    \"y\": -31.512747,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"27\",\n",
       "                    \"name\": \"Javert\",\n",
       "                    \"symbolSize\": 31.923806666666668,\n",
       "                    \"x\": -81.46074,\n",
       "                    \"y\": -204.20204,\n",
       "                    \"value\": 47.88571,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"28\",\n",
       "                    \"name\": \"Fauchelevent\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": -225.73984,\n",
       "                    \"y\": 82.41631,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"29\",\n",
       "                    \"name\": \"Bamatabois\",\n",
       "                    \"symbolSize\": 15.466666666666667,\n",
       "                    \"x\": -385.6842,\n",
       "                    \"y\": -20.206686,\n",
       "                    \"value\": 23.2,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"30\",\n",
       "                    \"name\": \"Perpetue\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -403.92447,\n",
       "                    \"y\": -197.69823,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"31\",\n",
       "                    \"name\": \"Simplice\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": -281.4253,\n",
       "                    \"y\": -158.45137,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"32\",\n",
       "                    \"name\": \"Scaufflaire\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -122.41348,\n",
       "                    \"y\": 210.37503,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"33\",\n",
       "                    \"name\": \"Woman1\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -234.6001,\n",
       "                    \"y\": -113.15067,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"34\",\n",
       "                    \"name\": \"Judge\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -387.84915,\n",
       "                    \"y\": 58.7059,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"35\",\n",
       "                    \"name\": \"Champmathieu\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -338.2307,\n",
       "                    \"y\": 87.48405,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"36\",\n",
       "                    \"name\": \"Brevet\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -453.26874,\n",
       "                    \"y\": 58.94648,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"37\",\n",
       "                    \"name\": \"Chenildieu\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -386.44904,\n",
       "                    \"y\": 140.05937,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"38\",\n",
       "                    \"name\": \"Cochepaille\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -446.7876,\n",
       "                    \"y\": 123.38005,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"39\",\n",
       "                    \"name\": \"Pontmercy\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 336.49738,\n",
       "                    \"y\": -269.55914,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"40\",\n",
       "                    \"name\": \"Boulatruelle\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 29.187843,\n",
       "                    \"y\": -460.13132,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"41\",\n",
       "                    \"name\": \"Eponine\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 238.36697,\n",
       "                    \"y\": -210.00926,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"42\",\n",
       "                    \"name\": \"Anzelma\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 189.69513,\n",
       "                    \"y\": -346.50662,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"43\",\n",
       "                    \"name\": \"Woman2\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -187.00418,\n",
       "                    \"y\": -145.02663,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"44\",\n",
       "                    \"name\": \"MotherInnocent\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -252.99521,\n",
       "                    \"y\": 129.87549,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"45\",\n",
       "                    \"name\": \"Gribier\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -296.07935,\n",
       "                    \"y\": 163.11964,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"46\",\n",
       "                    \"name\": \"Jondrette\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 550.3201,\n",
       "                    \"y\": 522.4031,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 5\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"47\",\n",
       "                    \"name\": \"MmeBurgon\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 488.13535,\n",
       "                    \"y\": 356.8573,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 5\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"48\",\n",
       "                    \"name\": \"Gavroche\",\n",
       "                    \"symbolSize\": 41.06667066666667,\n",
       "                    \"x\": 387.89572,\n",
       "                    \"y\": 110.462326,\n",
       "                    \"value\": 61.600006,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"49\",\n",
       "                    \"name\": \"Gillenormand\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 126.4831,\n",
       "                    \"y\": 68.10622,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"50\",\n",
       "                    \"name\": \"Magnon\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 127.07365,\n",
       "                    \"y\": -113.05923,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"51\",\n",
       "                    \"name\": \"MlleGillenormand\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 162.63559,\n",
       "                    \"y\": 117.6565,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"52\",\n",
       "                    \"name\": \"MmePontmercy\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 353.66415,\n",
       "                    \"y\": -205.89165,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"53\",\n",
       "                    \"name\": \"MlleVaubois\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 165.43939,\n",
       "                    \"y\": 339.7736,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"54\",\n",
       "                    \"name\": \"LtGillenormand\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": 137.69348,\n",
       "                    \"y\": 196.1069,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"55\",\n",
       "                    \"name\": \"Marius\",\n",
       "                    \"symbolSize\": 35.58095333333333,\n",
       "                    \"x\": 206.44687,\n",
       "                    \"y\": -13.805411,\n",
       "                    \"value\": 53.37143,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"56\",\n",
       "                    \"name\": \"BaronessT\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 194.82993,\n",
       "                    \"y\": 224.78036,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"57\",\n",
       "                    \"name\": \"Mabeuf\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 597.6618,\n",
       "                    \"y\": 135.18481,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"58\",\n",
       "                    \"name\": \"Enjolras\",\n",
       "                    \"symbolSize\": 28.266666666666666,\n",
       "                    \"x\": 355.78366,\n",
       "                    \"y\": -74.882454,\n",
       "                    \"value\": 42.4,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"59\",\n",
       "                    \"name\": \"Combeferre\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 515.2961,\n",
       "                    \"y\": -46.167564,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"60\",\n",
       "                    \"name\": \"Prouvaire\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": 614.29285,\n",
       "                    \"y\": -69.3104,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"61\",\n",
       "                    \"name\": \"Feuilly\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 550.1917,\n",
       "                    \"y\": -128.17537,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"62\",\n",
       "                    \"name\": \"Courfeyrac\",\n",
       "                    \"symbolSize\": 24.609526666666667,\n",
       "                    \"x\": 436.17184,\n",
       "                    \"y\": -12.7286825,\n",
       "                    \"value\": 36.91429,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"63\",\n",
       "                    \"name\": \"Bahorel\",\n",
       "                    \"symbolSize\": 22.780953333333333,\n",
       "                    \"x\": 602.55225,\n",
       "                    \"y\": 16.421427,\n",
       "                    \"value\": 34.17143,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"64\",\n",
       "                    \"name\": \"Bossuet\",\n",
       "                    \"symbolSize\": 24.609526666666667,\n",
       "                    \"x\": 455.81955,\n",
       "                    \"y\": -115.45826,\n",
       "                    \"value\": 36.91429,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"65\",\n",
       "                    \"name\": \"Joly\",\n",
       "                    \"symbolSize\": 22.780953333333333,\n",
       "                    \"x\": 516.40784,\n",
       "                    \"y\": 47.242233,\n",
       "                    \"value\": 34.17143,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"66\",\n",
       "                    \"name\": \"Grantaire\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 646.4313,\n",
       "                    \"y\": -151.06331,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"67\",\n",
       "                    \"name\": \"MotherPlutarch\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 668.9568,\n",
       "                    \"y\": 204.65488,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"68\",\n",
       "                    \"name\": \"Gueulemer\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 78.4799,\n",
       "                    \"y\": -347.15146,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"69\",\n",
       "                    \"name\": \"Babet\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 150.35959,\n",
       "                    \"y\": -298.50797,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"70\",\n",
       "                    \"name\": \"Claquesous\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 137.3717,\n",
       "                    \"y\": -410.2809,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"71\",\n",
       "                    \"name\": \"Montparnasse\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": 234.87747,\n",
       "                    \"y\": -400.85983,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"72\",\n",
       "                    \"name\": \"Toussaint\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 40.942253,\n",
       "                    \"y\": 113.78272,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"73\",\n",
       "                    \"name\": \"Child1\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 437.939,\n",
       "                    \"y\": 291.58234,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"74\",\n",
       "                    \"name\": \"Child2\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 466.04922,\n",
       "                    \"y\": 283.3606,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"75\",\n",
       "                    \"name\": \"Brujon\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 238.79364,\n",
       "                    \"y\": -314.06345,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"76\",\n",
       "                    \"name\": \"MmeHucheloup\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 712.18353,\n",
       "                    \"y\": 4.8131495,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 8\n",
       "                }\n",
       "            ],\n",
       "            \"categories\": [\n",
       "                {\n",
       "                    \"name\": \"A\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"B\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"C\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"D\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"E\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"F\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"G\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"H\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"I\"\n",
       "                }\n",
       "            ],\n",
       "            \"edgeLabel\": {\n",
       "                \"show\": false,\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"edgeSymbol\": [\n",
       "                null,\n",
       "                null\n",
       "            ],\n",
       "            \"edgeSymbolSize\": 10,\n",
       "            \"links\": [\n",
       "                {\n",
       "                    \"source\": \"1\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"2\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"3\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"3\",\n",
       "                    \"target\": \"2\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"4\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"5\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"6\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"7\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"8\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"9\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"2\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"3\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"10\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"12\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"13\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"14\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"15\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"17\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"18\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"18\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"21\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"12\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"21\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"22\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"24\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"24\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"28\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"28\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"30\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"30\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"32\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"33\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"33\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"34\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"34\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"36\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"36\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"37\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"39\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"40\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"41\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"41\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"44\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"44\",\n",
       "                    \"target\": \"28\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"45\",\n",
       "                    \"target\": \"28\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"47\",\n",
       "                    \"target\": \"46\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"47\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"49\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"49\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"50\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"50\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"52\",\n",
       "                    \"target\": \"39\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"52\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"53\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"39\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"54\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"56\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"56\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"65\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"67\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"70\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"73\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"74\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"74\",\n",
       "                    \"target\": \"73\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"70\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"71\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"65\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"66\"\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"A\",\n",
       "                \"B\",\n",
       "                \"C\",\n",
       "                \"D\",\n",
       "                \"E\",\n",
       "                \"F\",\n",
       "                \"G\",\n",
       "                \"H\",\n",
       "                \"I\"\n",
       "            ],\n",
       "            \"selected\": {},\n",
       "            \"show\": true,\n",
       "            \"left\": \"2%\",\n",
       "            \"top\": \"20%\",\n",
       "            \"orient\": \"vertical\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"itemWidth\": 25,\n",
       "            \"itemHeight\": 14,\n",
       "            \"backgroundColor\": \"transparent\",\n",
       "            \"borderColor\": \"#ccc\",\n",
       "            \"borderWidth\": 1,\n",
       "            \"borderRadius\": 0,\n",
       "            \"pageButtonItemGap\": 5,\n",
       "            \"pageButtonPosition\": \"end\",\n",
       "            \"pageFormatter\": \"{current}/{total}\",\n",
       "            \"pageIconColor\": \"#2f4554\",\n",
       "            \"pageIconInactiveColor\": \"#aaa\",\n",
       "            \"pageIconSize\": 15,\n",
       "            \"animationDurationUpdate\": 800,\n",
       "            \"selector\": false,\n",
       "            \"selectorPosition\": \"auto\",\n",
       "            \"selectorItemGap\": 7,\n",
       "            \"selectorButtonGap\": 10\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"showContent\": true,\n",
       "        \"alwaysShowContent\": false,\n",
       "        \"showDelay\": 0,\n",
       "        \"hideDelay\": 100,\n",
       "        \"enterable\": false,\n",
       "        \"confine\": false,\n",
       "        \"appendToBody\": false,\n",
       "        \"transitionDuration\": 0.4,\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0,\n",
       "        \"padding\": 5,\n",
       "        \"order\": \"seriesAsc\"\n",
       "    },\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"text\": \"Graph-Les Miserables\",\n",
       "            \"target\": \"blank\",\n",
       "            \"subtarget\": \"blank\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"textAlign\": \"auto\",\n",
       "            \"textVerticalAlign\": \"auto\",\n",
       "            \"triggerEvent\": false\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_25dd7f7c53c5461aba298e40152e4028.setOption(option_25dd7f7c53c5461aba298e40152e4028);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x18a957fdcd0>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import json\n",
    "\n",
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Graph\n",
    "\n",
    "\n",
    "with open(\"les-miserables.json\", \"r\", encoding=\"utf-8\") as f:\n",
    "    j = json.load(f)\n",
    "    nodes = j[\"nodes\"]\n",
    "    links = j[\"links\"]\n",
    "    categories = j[\"categories\"]\n",
    "\n",
    "G = Graph(init_opts=opts.InitOpts(width=\"1000px\", height=\"600px\",bg_color=\"#FFFFFF\"))\n",
    "G.add(\n",
    "        \"\",\n",
    "        nodes=nodes,\n",
    "        links=links,\n",
    "        categories=categories,\n",
    "        layout=\"circular\",\n",
    "        is_rotate_label=True,\n",
    "        linestyle_opts=opts.LineStyleOpts(color=\"source\", curve=0.3),\n",
    "        label_opts=opts.LabelOpts(position=\"right\"),\n",
    "    )\n",
    "G.set_global_opts(\n",
    "        title_opts=opts.TitleOpts(title=\"Graph-Les Miserables\"),\n",
    "        legend_opts=opts.LegendOpts(orient=\"vertical\", pos_left=\"2%\", pos_top=\"20%\"),\n",
    "    )\n",
    "G.render_notebook()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'name': 'A'}, {'name': 'B'}, {'name': 'C'}, {'name': 'D'}, {'name': 'E'}, {'name': 'F'}, {'name': 'G'}, {'name': 'H'}, {'name': 'I'}]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/v5/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"21667f1910bc4433957e9551975174dc\" style=\"width:1000px; height:600px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_21667f1910bc4433957e9551975174dc = echarts.init(\n",
       "                    document.getElementById('21667f1910bc4433957e9551975174dc'), 'white', {renderer: 'canvas'});\n",
       "                var option_21667f1910bc4433957e9551975174dc = {\n",
       "    \"backgroundColor\": \"#FFFFFF\",\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"aria\": {\n",
       "        \"enabled\": false\n",
       "    },\n",
       "    \"color\": [\n",
       "        \"#5470c6\",\n",
       "        \"#91cc75\",\n",
       "        \"#fac858\",\n",
       "        \"#ee6666\",\n",
       "        \"#73c0de\",\n",
       "        \"#3ba272\",\n",
       "        \"#fc8452\",\n",
       "        \"#9a60b4\",\n",
       "        \"#ea7ccc\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"graph\",\n",
       "            \"layout\": \"none\",\n",
       "            \"symbolSize\": 10,\n",
       "            \"circular\": {\n",
       "                \"rotateLabel\": true\n",
       "            },\n",
       "            \"force\": {\n",
       "                \"repulsion\": 50,\n",
       "                \"gravity\": 0.2,\n",
       "                \"edgeLength\": 30,\n",
       "                \"friction\": 0.6,\n",
       "                \"layoutAnimation\": true\n",
       "            },\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"right\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"lineStyle\": {\n",
       "                \"show\": true,\n",
       "                \"width\": 1,\n",
       "                \"opacity\": 1,\n",
       "                \"curveness\": 0.3,\n",
       "                \"type\": \"solid\",\n",
       "                \"color\": \"source\"\n",
       "            },\n",
       "            \"roam\": true,\n",
       "            \"draggable\": false,\n",
       "            \"focusNodeAdjacency\": true,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"id\": \"0\",\n",
       "                    \"name\": \"Myriel\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": -266.82776,\n",
       "                    \"y\": 299.6904,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"1\",\n",
       "                    \"name\": \"Napoleon\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -418.08344,\n",
       "                    \"y\": 446.8853,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"2\",\n",
       "                    \"name\": \"MlleBaptistine\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -212.76357,\n",
       "                    \"y\": 245.29176,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"3\",\n",
       "                    \"name\": \"MmeMagloire\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -242.82404,\n",
       "                    \"y\": 235.26283,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"4\",\n",
       "                    \"name\": \"CountessDeLo\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -379.30386,\n",
       "                    \"y\": 429.06424,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"5\",\n",
       "                    \"name\": \"Geborand\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -417.26337,\n",
       "                    \"y\": 406.03506,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"6\",\n",
       "                    \"name\": \"Champtercier\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -332.6012,\n",
       "                    \"y\": 485.16974,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"7\",\n",
       "                    \"name\": \"Cravatte\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -382.69568,\n",
       "                    \"y\": 475.09113,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"8\",\n",
       "                    \"name\": \"Count\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -320.384,\n",
       "                    \"y\": 387.17325,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"9\",\n",
       "                    \"name\": \"OldMan\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -344.39832,\n",
       "                    \"y\": 451.16772,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"10\",\n",
       "                    \"name\": \"Labarre\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -89.34107,\n",
       "                    \"y\": 234.56128,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"11\",\n",
       "                    \"name\": \"Valjean\",\n",
       "                    \"symbolSize\": 66.66666666666667,\n",
       "                    \"x\": -87.93029,\n",
       "                    \"y\": -6.8120565,\n",
       "                    \"value\": 100,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"12\",\n",
       "                    \"name\": \"Marguerite\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -339.77908,\n",
       "                    \"y\": -184.69139,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"13\",\n",
       "                    \"name\": \"MmeDeR\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -194.31313,\n",
       "                    \"y\": 178.55301,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"14\",\n",
       "                    \"name\": \"Isabeau\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -158.05168,\n",
       "                    \"y\": 201.99768,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"15\",\n",
       "                    \"name\": \"Gervais\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -127.701546,\n",
       "                    \"y\": 242.55057,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"16\",\n",
       "                    \"name\": \"Tholomyes\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": -385.2226,\n",
       "                    \"y\": -393.5572,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"17\",\n",
       "                    \"name\": \"Listolier\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -516.55884,\n",
       "                    \"y\": -393.98975,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"18\",\n",
       "                    \"name\": \"Fameuil\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -464.79382,\n",
       "                    \"y\": -493.57944,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"19\",\n",
       "                    \"name\": \"Blacheville\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -515.1624,\n",
       "                    \"y\": -456.9891,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"20\",\n",
       "                    \"name\": \"Favourite\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -408.12122,\n",
       "                    \"y\": -464.5048,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"21\",\n",
       "                    \"name\": \"Dahlia\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -456.44113,\n",
       "                    \"y\": -425.13303,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"22\",\n",
       "                    \"name\": \"Zephine\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -459.1107,\n",
       "                    \"y\": -362.5133,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"23\",\n",
       "                    \"name\": \"Fantine\",\n",
       "                    \"symbolSize\": 28.266666666666666,\n",
       "                    \"x\": -313.42786,\n",
       "                    \"y\": -289.44803,\n",
       "                    \"value\": 42.4,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"24\",\n",
       "                    \"name\": \"MmeThenardier\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 4.6313396,\n",
       "                    \"y\": -273.8517,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"25\",\n",
       "                    \"name\": \"Thenardier\",\n",
       "                    \"symbolSize\": 30.095235333333335,\n",
       "                    \"x\": 82.80825,\n",
       "                    \"y\": -203.1144,\n",
       "                    \"value\": 45.142853,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"26\",\n",
       "                    \"name\": \"Cosette\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 78.64646,\n",
       "                    \"y\": -31.512747,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"27\",\n",
       "                    \"name\": \"Javert\",\n",
       "                    \"symbolSize\": 31.923806666666668,\n",
       "                    \"x\": -81.46074,\n",
       "                    \"y\": -204.20204,\n",
       "                    \"value\": 47.88571,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"28\",\n",
       "                    \"name\": \"Fauchelevent\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": -225.73984,\n",
       "                    \"y\": 82.41631,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"29\",\n",
       "                    \"name\": \"Bamatabois\",\n",
       "                    \"symbolSize\": 15.466666666666667,\n",
       "                    \"x\": -385.6842,\n",
       "                    \"y\": -20.206686,\n",
       "                    \"value\": 23.2,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"30\",\n",
       "                    \"name\": \"Perpetue\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -403.92447,\n",
       "                    \"y\": -197.69823,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"31\",\n",
       "                    \"name\": \"Simplice\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": -281.4253,\n",
       "                    \"y\": -158.45137,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"32\",\n",
       "                    \"name\": \"Scaufflaire\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -122.41348,\n",
       "                    \"y\": 210.37503,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"33\",\n",
       "                    \"name\": \"Woman1\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -234.6001,\n",
       "                    \"y\": -113.15067,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"34\",\n",
       "                    \"name\": \"Judge\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -387.84915,\n",
       "                    \"y\": 58.7059,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"35\",\n",
       "                    \"name\": \"Champmathieu\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -338.2307,\n",
       "                    \"y\": 87.48405,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"36\",\n",
       "                    \"name\": \"Brevet\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -453.26874,\n",
       "                    \"y\": 58.94648,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"37\",\n",
       "                    \"name\": \"Chenildieu\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -386.44904,\n",
       "                    \"y\": 140.05937,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"38\",\n",
       "                    \"name\": \"Cochepaille\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -446.7876,\n",
       "                    \"y\": 123.38005,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"39\",\n",
       "                    \"name\": \"Pontmercy\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 336.49738,\n",
       "                    \"y\": -269.55914,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"40\",\n",
       "                    \"name\": \"Boulatruelle\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 29.187843,\n",
       "                    \"y\": -460.13132,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"41\",\n",
       "                    \"name\": \"Eponine\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 238.36697,\n",
       "                    \"y\": -210.00926,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"42\",\n",
       "                    \"name\": \"Anzelma\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 189.69513,\n",
       "                    \"y\": -346.50662,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"43\",\n",
       "                    \"name\": \"Woman2\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -187.00418,\n",
       "                    \"y\": -145.02663,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"44\",\n",
       "                    \"name\": \"MotherInnocent\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -252.99521,\n",
       "                    \"y\": 129.87549,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"45\",\n",
       "                    \"name\": \"Gribier\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -296.07935,\n",
       "                    \"y\": 163.11964,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"46\",\n",
       "                    \"name\": \"Jondrette\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 550.3201,\n",
       "                    \"y\": 522.4031,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 5\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"47\",\n",
       "                    \"name\": \"MmeBurgon\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 488.13535,\n",
       "                    \"y\": 356.8573,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 5\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"48\",\n",
       "                    \"name\": \"Gavroche\",\n",
       "                    \"symbolSize\": 41.06667066666667,\n",
       "                    \"x\": 387.89572,\n",
       "                    \"y\": 110.462326,\n",
       "                    \"value\": 61.600006,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"49\",\n",
       "                    \"name\": \"Gillenormand\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 126.4831,\n",
       "                    \"y\": 68.10622,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"50\",\n",
       "                    \"name\": \"Magnon\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 127.07365,\n",
       "                    \"y\": -113.05923,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"51\",\n",
       "                    \"name\": \"MlleGillenormand\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 162.63559,\n",
       "                    \"y\": 117.6565,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"52\",\n",
       "                    \"name\": \"MmePontmercy\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 353.66415,\n",
       "                    \"y\": -205.89165,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"53\",\n",
       "                    \"name\": \"MlleVaubois\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 165.43939,\n",
       "                    \"y\": 339.7736,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"54\",\n",
       "                    \"name\": \"LtGillenormand\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": 137.69348,\n",
       "                    \"y\": 196.1069,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"55\",\n",
       "                    \"name\": \"Marius\",\n",
       "                    \"symbolSize\": 35.58095333333333,\n",
       "                    \"x\": 206.44687,\n",
       "                    \"y\": -13.805411,\n",
       "                    \"value\": 53.37143,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"56\",\n",
       "                    \"name\": \"BaronessT\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 194.82993,\n",
       "                    \"y\": 224.78036,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"57\",\n",
       "                    \"name\": \"Mabeuf\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 597.6618,\n",
       "                    \"y\": 135.18481,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"58\",\n",
       "                    \"name\": \"Enjolras\",\n",
       "                    \"symbolSize\": 28.266666666666666,\n",
       "                    \"x\": 355.78366,\n",
       "                    \"y\": -74.882454,\n",
       "                    \"value\": 42.4,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"59\",\n",
       "                    \"name\": \"Combeferre\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 515.2961,\n",
       "                    \"y\": -46.167564,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"60\",\n",
       "                    \"name\": \"Prouvaire\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": 614.29285,\n",
       "                    \"y\": -69.3104,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"61\",\n",
       "                    \"name\": \"Feuilly\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 550.1917,\n",
       "                    \"y\": -128.17537,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"62\",\n",
       "                    \"name\": \"Courfeyrac\",\n",
       "                    \"symbolSize\": 24.609526666666667,\n",
       "                    \"x\": 436.17184,\n",
       "                    \"y\": -12.7286825,\n",
       "                    \"value\": 36.91429,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"63\",\n",
       "                    \"name\": \"Bahorel\",\n",
       "                    \"symbolSize\": 22.780953333333333,\n",
       "                    \"x\": 602.55225,\n",
       "                    \"y\": 16.421427,\n",
       "                    \"value\": 34.17143,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"64\",\n",
       "                    \"name\": \"Bossuet\",\n",
       "                    \"symbolSize\": 24.609526666666667,\n",
       "                    \"x\": 455.81955,\n",
       "                    \"y\": -115.45826,\n",
       "                    \"value\": 36.91429,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"65\",\n",
       "                    \"name\": \"Joly\",\n",
       "                    \"symbolSize\": 22.780953333333333,\n",
       "                    \"x\": 516.40784,\n",
       "                    \"y\": 47.242233,\n",
       "                    \"value\": 34.17143,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"66\",\n",
       "                    \"name\": \"Grantaire\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 646.4313,\n",
       "                    \"y\": -151.06331,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"67\",\n",
       "                    \"name\": \"MotherPlutarch\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 668.9568,\n",
       "                    \"y\": 204.65488,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"68\",\n",
       "                    \"name\": \"Gueulemer\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 78.4799,\n",
       "                    \"y\": -347.15146,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"69\",\n",
       "                    \"name\": \"Babet\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 150.35959,\n",
       "                    \"y\": -298.50797,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"70\",\n",
       "                    \"name\": \"Claquesous\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 137.3717,\n",
       "                    \"y\": -410.2809,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"71\",\n",
       "                    \"name\": \"Montparnasse\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": 234.87747,\n",
       "                    \"y\": -400.85983,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"72\",\n",
       "                    \"name\": \"Toussaint\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 40.942253,\n",
       "                    \"y\": 113.78272,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"73\",\n",
       "                    \"name\": \"Child1\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 437.939,\n",
       "                    \"y\": 291.58234,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"74\",\n",
       "                    \"name\": \"Child2\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 466.04922,\n",
       "                    \"y\": 283.3606,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"75\",\n",
       "                    \"name\": \"Brujon\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 238.79364,\n",
       "                    \"y\": -314.06345,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"76\",\n",
       "                    \"name\": \"MmeHucheloup\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 712.18353,\n",
       "                    \"y\": 4.8131495,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 8\n",
       "                }\n",
       "            ],\n",
       "            \"categories\": [\n",
       "                {\n",
       "                    \"name\": \"A\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"B\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"C\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"D\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"E\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"F\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"G\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"H\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"I\"\n",
       "                }\n",
       "            ],\n",
       "            \"edgeLabel\": {\n",
       "                \"show\": false,\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"edgeSymbol\": [\n",
       "                null,\n",
       "                null\n",
       "            ],\n",
       "            \"edgeSymbolSize\": 10,\n",
       "            \"links\": [\n",
       "                {\n",
       "                    \"source\": \"1\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"2\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"3\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"3\",\n",
       "                    \"target\": \"2\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"4\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"5\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"6\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"7\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"8\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"9\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"2\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"3\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"10\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"12\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"13\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"14\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"15\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"17\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"18\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"18\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"21\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"12\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"21\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"22\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"24\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"24\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"28\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"28\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"30\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"30\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"32\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"33\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"33\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"34\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"34\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"36\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"36\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"37\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"39\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"40\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"41\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"41\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"44\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"44\",\n",
       "                    \"target\": \"28\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"45\",\n",
       "                    \"target\": \"28\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"47\",\n",
       "                    \"target\": \"46\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"47\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"49\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"49\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"50\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"50\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"52\",\n",
       "                    \"target\": \"39\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"52\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"53\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"39\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"54\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"56\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"56\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"65\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"67\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"70\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"73\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"74\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"74\",\n",
       "                    \"target\": \"73\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"70\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"71\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"65\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"66\"\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"A\",\n",
       "                \"B\",\n",
       "                \"C\",\n",
       "                \"D\",\n",
       "                \"E\",\n",
       "                \"F\",\n",
       "                \"G\",\n",
       "                \"H\",\n",
       "                \"I\"\n",
       "            ],\n",
       "            \"selected\": {},\n",
       "            \"show\": true,\n",
       "            \"left\": \"2%\",\n",
       "            \"top\": \"20%\",\n",
       "            \"orient\": \"vertical\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"itemWidth\": 25,\n",
       "            \"itemHeight\": 14,\n",
       "            \"backgroundColor\": \"transparent\",\n",
       "            \"borderColor\": \"#ccc\",\n",
       "            \"borderWidth\": 1,\n",
       "            \"borderRadius\": 0,\n",
       "            \"pageButtonItemGap\": 5,\n",
       "            \"pageButtonPosition\": \"end\",\n",
       "            \"pageFormatter\": \"{current}/{total}\",\n",
       "            \"pageIconColor\": \"#2f4554\",\n",
       "            \"pageIconInactiveColor\": \"#aaa\",\n",
       "            \"pageIconSize\": 15,\n",
       "            \"animationDurationUpdate\": 800,\n",
       "            \"selector\": false,\n",
       "            \"selectorPosition\": \"auto\",\n",
       "            \"selectorItemGap\": 7,\n",
       "            \"selectorButtonGap\": 10\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"showContent\": true,\n",
       "        \"alwaysShowContent\": false,\n",
       "        \"showDelay\": 0,\n",
       "        \"hideDelay\": 100,\n",
       "        \"enterable\": false,\n",
       "        \"confine\": false,\n",
       "        \"appendToBody\": false,\n",
       "        \"transitionDuration\": 0.4,\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0,\n",
       "        \"padding\": 5,\n",
       "        \"order\": \"seriesAsc\"\n",
       "    },\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"text\": \"Graph-Les Miserables\",\n",
       "            \"target\": \"blank\",\n",
       "            \"subtarget\": \"blank\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"textAlign\": \"auto\",\n",
       "            \"textVerticalAlign\": \"auto\",\n",
       "            \"triggerEvent\": false\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_21667f1910bc4433957e9551975174dc.setOption(option_21667f1910bc4433957e9551975174dc);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x124359de0>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import json\n",
    "\n",
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Graph\n",
    "\n",
    "\n",
    "with open(\"les-miserables.json\", \"r\", encoding=\"utf-8\") as f:\n",
    "    j = json.load(f)\n",
    "    nodes = j[\"nodes\"]\n",
    "    links = j[\"links\"]\n",
    "    categories = j[\"categories\"]\n",
    "\n",
    "print(categories)\n",
    "G = Graph(init_opts=opts.InitOpts(width=\"1000px\", height=\"600px\",bg_color=\"#FFFFFF\"))\n",
    "G.add(\n",
    "        \"\",\n",
    "        nodes=nodes,\n",
    "        links=links,\n",
    "        categories=categories,\n",
    "        layout=\"none\",\n",
    "        is_rotate_label=True,\n",
    "        linestyle_opts=opts.LineStyleOpts(color=\"source\", curve=0.3),\n",
    "        label_opts=opts.LabelOpts(position=\"right\"),\n",
    "    )\n",
    "G.set_global_opts(\n",
    "        title_opts=opts.TitleOpts(title=\"Graph-Les Miserables\"),\n",
    "        legend_opts=opts.LegendOpts(orient=\"vertical\", pos_left=\"2%\", pos_top=\"20%\"),\n",
    "    )\n",
    "G.render_notebook()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/v5/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"66b6ebb5d18c49cb87ca0be8ea062e3f\" style=\"width:1000px; height:600px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_66b6ebb5d18c49cb87ca0be8ea062e3f = echarts.init(\n",
       "                    document.getElementById('66b6ebb5d18c49cb87ca0be8ea062e3f'), 'white', {renderer: 'canvas'});\n",
       "                var option_66b6ebb5d18c49cb87ca0be8ea062e3f = {\n",
       "    \"backgroundColor\": \"#FFFFFF\",\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"aria\": {\n",
       "        \"enabled\": false\n",
       "    },\n",
       "    \"color\": [\n",
       "        \"#5470c6\",\n",
       "        \"#91cc75\",\n",
       "        \"#fac858\",\n",
       "        \"#ee6666\",\n",
       "        \"#73c0de\",\n",
       "        \"#3ba272\",\n",
       "        \"#fc8452\",\n",
       "        \"#9a60b4\",\n",
       "        \"#ea7ccc\"\n",
       "    ],\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"graph\",\n",
       "            \"layout\": \"force\",\n",
       "            \"symbolSize\": 10,\n",
       "            \"circular\": {\n",
       "                \"rotateLabel\": true\n",
       "            },\n",
       "            \"force\": {\n",
       "                \"repulsion\": 5000,\n",
       "                \"gravity\": 0.2,\n",
       "                \"edgeLength\": 30,\n",
       "                \"friction\": 0.6,\n",
       "                \"layoutAnimation\": true\n",
       "            },\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"right\",\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"lineStyle\": {\n",
       "                \"show\": true,\n",
       "                \"width\": 1,\n",
       "                \"opacity\": 1,\n",
       "                \"curveness\": 0.3,\n",
       "                \"type\": \"solid\",\n",
       "                \"color\": \"source\"\n",
       "            },\n",
       "            \"roam\": true,\n",
       "            \"draggable\": false,\n",
       "            \"focusNodeAdjacency\": true,\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"id\": \"0\",\n",
       "                    \"name\": \"Myriel\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": -266.82776,\n",
       "                    \"y\": 299.6904,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"1\",\n",
       "                    \"name\": \"Napoleon\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -418.08344,\n",
       "                    \"y\": 446.8853,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"2\",\n",
       "                    \"name\": \"MlleBaptistine\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -212.76357,\n",
       "                    \"y\": 245.29176,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"3\",\n",
       "                    \"name\": \"MmeMagloire\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -242.82404,\n",
       "                    \"y\": 235.26283,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"4\",\n",
       "                    \"name\": \"CountessDeLo\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -379.30386,\n",
       "                    \"y\": 429.06424,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"5\",\n",
       "                    \"name\": \"Geborand\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -417.26337,\n",
       "                    \"y\": 406.03506,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"6\",\n",
       "                    \"name\": \"Champtercier\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -332.6012,\n",
       "                    \"y\": 485.16974,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"7\",\n",
       "                    \"name\": \"Cravatte\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -382.69568,\n",
       "                    \"y\": 475.09113,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"8\",\n",
       "                    \"name\": \"Count\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -320.384,\n",
       "                    \"y\": 387.17325,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"9\",\n",
       "                    \"name\": \"OldMan\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -344.39832,\n",
       "                    \"y\": 451.16772,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 0\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"10\",\n",
       "                    \"name\": \"Labarre\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -89.34107,\n",
       "                    \"y\": 234.56128,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"11\",\n",
       "                    \"name\": \"Valjean\",\n",
       "                    \"symbolSize\": 66.66666666666667,\n",
       "                    \"x\": -87.93029,\n",
       "                    \"y\": -6.8120565,\n",
       "                    \"value\": 100,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"12\",\n",
       "                    \"name\": \"Marguerite\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -339.77908,\n",
       "                    \"y\": -184.69139,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"13\",\n",
       "                    \"name\": \"MmeDeR\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -194.31313,\n",
       "                    \"y\": 178.55301,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"14\",\n",
       "                    \"name\": \"Isabeau\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -158.05168,\n",
       "                    \"y\": 201.99768,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"15\",\n",
       "                    \"name\": \"Gervais\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -127.701546,\n",
       "                    \"y\": 242.55057,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"16\",\n",
       "                    \"name\": \"Tholomyes\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": -385.2226,\n",
       "                    \"y\": -393.5572,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"17\",\n",
       "                    \"name\": \"Listolier\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -516.55884,\n",
       "                    \"y\": -393.98975,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"18\",\n",
       "                    \"name\": \"Fameuil\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -464.79382,\n",
       "                    \"y\": -493.57944,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"19\",\n",
       "                    \"name\": \"Blacheville\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -515.1624,\n",
       "                    \"y\": -456.9891,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"20\",\n",
       "                    \"name\": \"Favourite\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -408.12122,\n",
       "                    \"y\": -464.5048,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"21\",\n",
       "                    \"name\": \"Dahlia\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -456.44113,\n",
       "                    \"y\": -425.13303,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"22\",\n",
       "                    \"name\": \"Zephine\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": -459.1107,\n",
       "                    \"y\": -362.5133,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"23\",\n",
       "                    \"name\": \"Fantine\",\n",
       "                    \"symbolSize\": 28.266666666666666,\n",
       "                    \"x\": -313.42786,\n",
       "                    \"y\": -289.44803,\n",
       "                    \"value\": 42.4,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"24\",\n",
       "                    \"name\": \"MmeThenardier\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 4.6313396,\n",
       "                    \"y\": -273.8517,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"25\",\n",
       "                    \"name\": \"Thenardier\",\n",
       "                    \"symbolSize\": 30.095235333333335,\n",
       "                    \"x\": 82.80825,\n",
       "                    \"y\": -203.1144,\n",
       "                    \"value\": 45.142853,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"26\",\n",
       "                    \"name\": \"Cosette\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 78.64646,\n",
       "                    \"y\": -31.512747,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"27\",\n",
       "                    \"name\": \"Javert\",\n",
       "                    \"symbolSize\": 31.923806666666668,\n",
       "                    \"x\": -81.46074,\n",
       "                    \"y\": -204.20204,\n",
       "                    \"value\": 47.88571,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"28\",\n",
       "                    \"name\": \"Fauchelevent\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": -225.73984,\n",
       "                    \"y\": 82.41631,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"29\",\n",
       "                    \"name\": \"Bamatabois\",\n",
       "                    \"symbolSize\": 15.466666666666667,\n",
       "                    \"x\": -385.6842,\n",
       "                    \"y\": -20.206686,\n",
       "                    \"value\": 23.2,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"30\",\n",
       "                    \"name\": \"Perpetue\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -403.92447,\n",
       "                    \"y\": -197.69823,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"31\",\n",
       "                    \"name\": \"Simplice\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": -281.4253,\n",
       "                    \"y\": -158.45137,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 2\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"32\",\n",
       "                    \"name\": \"Scaufflaire\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -122.41348,\n",
       "                    \"y\": 210.37503,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"33\",\n",
       "                    \"name\": \"Woman1\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -234.6001,\n",
       "                    \"y\": -113.15067,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"34\",\n",
       "                    \"name\": \"Judge\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -387.84915,\n",
       "                    \"y\": 58.7059,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"35\",\n",
       "                    \"name\": \"Champmathieu\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -338.2307,\n",
       "                    \"y\": 87.48405,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"36\",\n",
       "                    \"name\": \"Brevet\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -453.26874,\n",
       "                    \"y\": 58.94648,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"37\",\n",
       "                    \"name\": \"Chenildieu\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -386.44904,\n",
       "                    \"y\": 140.05937,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"38\",\n",
       "                    \"name\": \"Cochepaille\",\n",
       "                    \"symbolSize\": 11.809524666666666,\n",
       "                    \"x\": -446.7876,\n",
       "                    \"y\": 123.38005,\n",
       "                    \"value\": 17.714287,\n",
       "                    \"category\": 3\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"39\",\n",
       "                    \"name\": \"Pontmercy\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 336.49738,\n",
       "                    \"y\": -269.55914,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"40\",\n",
       "                    \"name\": \"Boulatruelle\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 29.187843,\n",
       "                    \"y\": -460.13132,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"41\",\n",
       "                    \"name\": \"Eponine\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 238.36697,\n",
       "                    \"y\": -210.00926,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"42\",\n",
       "                    \"name\": \"Anzelma\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 189.69513,\n",
       "                    \"y\": -346.50662,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"43\",\n",
       "                    \"name\": \"Woman2\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": -187.00418,\n",
       "                    \"y\": -145.02663,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"44\",\n",
       "                    \"name\": \"MotherInnocent\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": -252.99521,\n",
       "                    \"y\": 129.87549,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"45\",\n",
       "                    \"name\": \"Gribier\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": -296.07935,\n",
       "                    \"y\": 163.11964,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 4\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"46\",\n",
       "                    \"name\": \"Jondrette\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 550.3201,\n",
       "                    \"y\": 522.4031,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 5\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"47\",\n",
       "                    \"name\": \"MmeBurgon\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 488.13535,\n",
       "                    \"y\": 356.8573,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 5\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"48\",\n",
       "                    \"name\": \"Gavroche\",\n",
       "                    \"symbolSize\": 41.06667066666667,\n",
       "                    \"x\": 387.89572,\n",
       "                    \"y\": 110.462326,\n",
       "                    \"value\": 61.600006,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"49\",\n",
       "                    \"name\": \"Gillenormand\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 126.4831,\n",
       "                    \"y\": 68.10622,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"50\",\n",
       "                    \"name\": \"Magnon\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 127.07365,\n",
       "                    \"y\": -113.05923,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"51\",\n",
       "                    \"name\": \"MlleGillenormand\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 162.63559,\n",
       "                    \"y\": 117.6565,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"52\",\n",
       "                    \"name\": \"MmePontmercy\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 353.66415,\n",
       "                    \"y\": -205.89165,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"53\",\n",
       "                    \"name\": \"MlleVaubois\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 165.43939,\n",
       "                    \"y\": 339.7736,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"54\",\n",
       "                    \"name\": \"LtGillenormand\",\n",
       "                    \"symbolSize\": 8.152382000000001,\n",
       "                    \"x\": 137.69348,\n",
       "                    \"y\": 196.1069,\n",
       "                    \"value\": 12.228573,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"55\",\n",
       "                    \"name\": \"Marius\",\n",
       "                    \"symbolSize\": 35.58095333333333,\n",
       "                    \"x\": 206.44687,\n",
       "                    \"y\": -13.805411,\n",
       "                    \"value\": 53.37143,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"56\",\n",
       "                    \"name\": \"BaronessT\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 194.82993,\n",
       "                    \"y\": 224.78036,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 6\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"57\",\n",
       "                    \"name\": \"Mabeuf\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 597.6618,\n",
       "                    \"y\": 135.18481,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"58\",\n",
       "                    \"name\": \"Enjolras\",\n",
       "                    \"symbolSize\": 28.266666666666666,\n",
       "                    \"x\": 355.78366,\n",
       "                    \"y\": -74.882454,\n",
       "                    \"value\": 42.4,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"59\",\n",
       "                    \"name\": \"Combeferre\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 515.2961,\n",
       "                    \"y\": -46.167564,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"60\",\n",
       "                    \"name\": \"Prouvaire\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": 614.29285,\n",
       "                    \"y\": -69.3104,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"61\",\n",
       "                    \"name\": \"Feuilly\",\n",
       "                    \"symbolSize\": 20.95238266666667,\n",
       "                    \"x\": 550.1917,\n",
       "                    \"y\": -128.17537,\n",
       "                    \"value\": 31.428574,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"62\",\n",
       "                    \"name\": \"Courfeyrac\",\n",
       "                    \"symbolSize\": 24.609526666666667,\n",
       "                    \"x\": 436.17184,\n",
       "                    \"y\": -12.7286825,\n",
       "                    \"value\": 36.91429,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"63\",\n",
       "                    \"name\": \"Bahorel\",\n",
       "                    \"symbolSize\": 22.780953333333333,\n",
       "                    \"x\": 602.55225,\n",
       "                    \"y\": 16.421427,\n",
       "                    \"value\": 34.17143,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"64\",\n",
       "                    \"name\": \"Bossuet\",\n",
       "                    \"symbolSize\": 24.609526666666667,\n",
       "                    \"x\": 455.81955,\n",
       "                    \"y\": -115.45826,\n",
       "                    \"value\": 36.91429,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"65\",\n",
       "                    \"name\": \"Joly\",\n",
       "                    \"symbolSize\": 22.780953333333333,\n",
       "                    \"x\": 516.40784,\n",
       "                    \"y\": 47.242233,\n",
       "                    \"value\": 34.17143,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"66\",\n",
       "                    \"name\": \"Grantaire\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 646.4313,\n",
       "                    \"y\": -151.06331,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"67\",\n",
       "                    \"name\": \"MotherPlutarch\",\n",
       "                    \"symbolSize\": 2.6666666666666665,\n",
       "                    \"x\": 668.9568,\n",
       "                    \"y\": 204.65488,\n",
       "                    \"value\": 4,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"68\",\n",
       "                    \"name\": \"Gueulemer\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 78.4799,\n",
       "                    \"y\": -347.15146,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"69\",\n",
       "                    \"name\": \"Babet\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 150.35959,\n",
       "                    \"y\": -298.50797,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"70\",\n",
       "                    \"name\": \"Claquesous\",\n",
       "                    \"symbolSize\": 19.12381,\n",
       "                    \"x\": 137.3717,\n",
       "                    \"y\": -410.2809,\n",
       "                    \"value\": 28.685715,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"71\",\n",
       "                    \"name\": \"Montparnasse\",\n",
       "                    \"symbolSize\": 17.295237333333333,\n",
       "                    \"x\": 234.87747,\n",
       "                    \"y\": -400.85983,\n",
       "                    \"value\": 25.942856,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"72\",\n",
       "                    \"name\": \"Toussaint\",\n",
       "                    \"symbolSize\": 6.323809333333333,\n",
       "                    \"x\": 40.942253,\n",
       "                    \"y\": 113.78272,\n",
       "                    \"value\": 9.485714,\n",
       "                    \"category\": 1\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"73\",\n",
       "                    \"name\": \"Child1\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 437.939,\n",
       "                    \"y\": 291.58234,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"74\",\n",
       "                    \"name\": \"Child2\",\n",
       "                    \"symbolSize\": 4.495239333333333,\n",
       "                    \"x\": 466.04922,\n",
       "                    \"y\": 283.3606,\n",
       "                    \"value\": 6.742859,\n",
       "                    \"category\": 8\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"75\",\n",
       "                    \"name\": \"Brujon\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 238.79364,\n",
       "                    \"y\": -314.06345,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 7\n",
       "                },\n",
       "                {\n",
       "                    \"id\": \"76\",\n",
       "                    \"name\": \"MmeHucheloup\",\n",
       "                    \"symbolSize\": 13.638097333333334,\n",
       "                    \"x\": 712.18353,\n",
       "                    \"y\": 4.8131495,\n",
       "                    \"value\": 20.457146,\n",
       "                    \"category\": 8\n",
       "                }\n",
       "            ],\n",
       "            \"categories\": [\n",
       "                {\n",
       "                    \"name\": \"A\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"B\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"C\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"D\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"E\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"F\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"G\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"H\"\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"I\"\n",
       "                }\n",
       "            ],\n",
       "            \"edgeLabel\": {\n",
       "                \"show\": false,\n",
       "                \"margin\": 8\n",
       "            },\n",
       "            \"edgeSymbol\": [\n",
       "                null,\n",
       "                null\n",
       "            ],\n",
       "            \"edgeSymbolSize\": 10,\n",
       "            \"links\": [\n",
       "                {\n",
       "                    \"source\": \"1\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"2\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"3\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"3\",\n",
       "                    \"target\": \"2\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"4\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"5\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"6\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"7\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"8\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"9\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"0\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"2\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"3\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"11\",\n",
       "                    \"target\": \"10\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"12\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"13\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"14\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"15\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"17\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"18\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"18\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"19\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"20\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"21\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"22\",\n",
       "                    \"target\": \"21\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"12\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"17\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"18\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"19\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"20\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"21\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"23\",\n",
       "                    \"target\": \"22\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"24\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"24\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"25\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"26\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"27\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"28\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"28\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"29\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"30\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"23\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"31\",\n",
       "                    \"target\": \"30\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"32\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"33\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"33\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"34\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"34\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"35\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"36\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"37\",\n",
       "                    \"target\": \"36\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"29\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"34\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"35\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"36\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"38\",\n",
       "                    \"target\": \"37\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"39\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"40\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"41\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"41\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"42\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"43\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"44\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"44\",\n",
       "                    \"target\": \"28\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"45\",\n",
       "                    \"target\": \"28\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"47\",\n",
       "                    \"target\": \"46\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"48\",\n",
       "                    \"target\": \"47\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"49\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"49\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"50\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"50\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"51\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"52\",\n",
       "                    \"target\": \"39\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"52\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"53\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"54\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"16\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"39\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"51\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"55\",\n",
       "                    \"target\": \"54\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"56\",\n",
       "                    \"target\": \"49\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"56\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"57\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"58\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"59\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"60\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"61\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"62\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"63\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"64\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"55\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"65\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"59\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"60\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"61\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"66\",\n",
       "                    \"target\": \"65\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"67\",\n",
       "                    \"target\": \"57\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"68\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"69\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"24\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"70\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"71\",\n",
       "                    \"target\": \"70\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"11\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"26\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"72\",\n",
       "                    \"target\": \"27\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"73\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"74\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"74\",\n",
       "                    \"target\": \"73\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"25\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"41\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"68\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"69\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"70\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"75\",\n",
       "                    \"target\": \"71\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"48\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"58\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"62\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"63\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"64\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"65\"\n",
       "                },\n",
       "                {\n",
       "                    \"source\": \"76\",\n",
       "                    \"target\": \"66\"\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"A\",\n",
       "                \"B\",\n",
       "                \"C\",\n",
       "                \"D\",\n",
       "                \"E\",\n",
       "                \"F\",\n",
       "                \"G\",\n",
       "                \"H\",\n",
       "                \"I\"\n",
       "            ],\n",
       "            \"selected\": {},\n",
       "            \"show\": true,\n",
       "            \"left\": \"2%\",\n",
       "            \"top\": \"20%\",\n",
       "            \"orient\": \"vertical\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"itemWidth\": 25,\n",
       "            \"itemHeight\": 14,\n",
       "            \"backgroundColor\": \"transparent\",\n",
       "            \"borderColor\": \"#ccc\",\n",
       "            \"borderWidth\": 1,\n",
       "            \"borderRadius\": 0,\n",
       "            \"pageButtonItemGap\": 5,\n",
       "            \"pageButtonPosition\": \"end\",\n",
       "            \"pageFormatter\": \"{current}/{total}\",\n",
       "            \"pageIconColor\": \"#2f4554\",\n",
       "            \"pageIconInactiveColor\": \"#aaa\",\n",
       "            \"pageIconSize\": 15,\n",
       "            \"animationDurationUpdate\": 800,\n",
       "            \"selector\": false,\n",
       "            \"selectorPosition\": \"auto\",\n",
       "            \"selectorItemGap\": 7,\n",
       "            \"selectorButtonGap\": 10\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"showContent\": true,\n",
       "        \"alwaysShowContent\": false,\n",
       "        \"showDelay\": 0,\n",
       "        \"hideDelay\": 100,\n",
       "        \"enterable\": false,\n",
       "        \"confine\": false,\n",
       "        \"appendToBody\": false,\n",
       "        \"transitionDuration\": 0.4,\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0,\n",
       "        \"padding\": 5,\n",
       "        \"order\": \"seriesAsc\"\n",
       "    },\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"text\": \"Graph-Les Miserables\",\n",
       "            \"target\": \"blank\",\n",
       "            \"subtarget\": \"blank\",\n",
       "            \"padding\": 5,\n",
       "            \"itemGap\": 10,\n",
       "            \"textAlign\": \"auto\",\n",
       "            \"textVerticalAlign\": \"auto\",\n",
       "            \"triggerEvent\": false\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_66b6ebb5d18c49cb87ca0be8ea062e3f.setOption(option_66b6ebb5d18c49cb87ca0be8ea062e3f);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x18a95400fa0>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import json\n",
    "\n",
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Graph\n",
    "\n",
    "\n",
    "with open(\"les-miserables.json\", \"r\", encoding=\"utf-8\") as f:\n",
    "    j = json.load(f)\n",
    "    nodes = j[\"nodes\"]\n",
    "    links = j[\"links\"]\n",
    "    categories = j[\"categories\"]\n",
    "\n",
    "G = Graph(init_opts=opts.InitOpts(width=\"1000px\", height=\"600px\",bg_color=\"#FFFFFF\"))\n",
    "G.add(\n",
    "        \"\",\n",
    "        nodes=nodes,\n",
    "        links=links,\n",
    "        categories=categories,\n",
    "        layout=\"force\",\n",
    "        repulsion=5000,\n",
    "        is_rotate_label=True,\n",
    "        linestyle_opts=opts.LineStyleOpts(color=\"source\", curve=0.3),\n",
    "        label_opts=opts.LabelOpts(position=\"right\"),\n",
    "    )\n",
    "G.set_global_opts(\n",
    "        title_opts=opts.TitleOpts(title=\"Graph-Les Miserables\"),\n",
    "        legend_opts=opts.LegendOpts(orient=\"vertical\", pos_left=\"2%\", pos_top=\"20%\"),\n",
    "    )\n",
    "G.render_notebook()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 创建示例数据集\n",
    "data = np.random.rand(10, 10)  # 生成一个10x10的随机数据矩阵\n",
    "\n",
    "# 绘制热力图\n",
    "plt.imshow(data, cmap='hot', interpolation='nearest')\n",
    "\n",
    "# 添加颜色栏\n",
    "plt.colorbar()\n",
    "\n",
    "# 显示图形\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.colors as colors\n",
    "\n",
    "# 创建示例数据集\n",
    "data = np.random.rand(10, 10)  # 生成一个10x10的随机数据矩阵\n",
    "\n",
    "# 自定义颜色渐变\n",
    "custom_colors = ['#FF0000', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF']  # 自定义颜色列表\n",
    "custom_cmap = colors.LinearSegmentedColormap.from_list('custom_cmap', custom_colors)\n",
    "\n",
    "# 绘制热力图，使用自定义颜色渐变\n",
    "plt.imshow(data, cmap=custom_cmap)\n",
    "\n",
    "# 添加颜色栏\n",
    "plt.colorbar()\n",
    "\n",
    "# 显示图形\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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H6xatQpZWVmIjIyEn58fJBIJ5syZo5bjGxoawtDQUC3HIiJ6G2Y2iEohmUwGe3t7ODk5oWvXrmjTpg1CQ0MB5P0sekhICFxdXWFoaIi6desqf947399//41q1arBwMAA3t7eWLNmDSQSCZKSkgAUPoyybNkyVKlSBfr6+qhRowZ+//13lf0SiQS//fYbunXrBiMjI1SrVg1///23aI8BEZUfDDaISrno6GicOHFC+fPcISEhWLt2LZYvX45Lly5h9OjR6NOnD44cOQIAiIuLQ48ePdC1a1ecP38egwcPxsSJE994jm3btuGrr77C2LFjER0djcGDB6N///4ICwtTqRccHIyePXviwoUL6NChA3r37o2nT5+K03EiKj80/UtwRKTKz89P0NHREYyNjQWZTCYAEKRSqbBlyxbhxYsXgpGRkXDixAmV+wQEBAi9evUSBEEQJkyYINSuXVtl/8SJE1V++XTVqlWCXC5X7m/evLkwcOBAlft8+umnQocOHZS3AQiTJk1S3k5NTRUACHv37lVHt4moHOOcDaJSyNvbG8uWLUNaWhoWLFgAXV1ddO/eHZcuXUJ6ejratm2rUj8zMxP169cHAMTExKBx48Yq+5s0afLG8125cgWDBg1SKWvRogUWLVqkUlanTh3lv42NjWFmZobExMRi94+ItAuDDaJSyNjYGFWrVgUArFy5EnXr1sWKFStQu3ZtAMDu3btRsWJFlfvIZDLR26Wnp6dyWyKRIDc3V/TzElHZxmCDqJSTSqX49ttvMWbMGFy7dg0ymQx37txBq1atCq1fo0YN7NmzR6Xs9OnTbzyHm5sbjh8/Dj8/P2XZ8ePH4e7u/u4dICKtx2CDqAz49NNP8fXXX+Pnn3/GuHHjMHr0aOTm5uKDDz5AcnIyjh8/DjMzM/j5+WHw4MGYP38+JkyYgICAAERFRWH16tUA8jIRhfn666/Rs2dP1K9fH23atMHOnTuxdetWHDx48D32kojKKwYbRGWArq4uhg8fjrlz5yIuLg42NjYICQnBzZs3YW5ujgYNGuDbb78FALi6umLLli0YO3YsFi1aBE9PT0ycOBFDhw597VBL165dsWjRInz//ff46quv4OrqilWrVsHLy+s99pKIyiuJIAiCphtBROKaOXMmli9fjrt372q6KUSkhZjZICqHli5disaNG8PKygrHjx/HvHnzMHz4cE03i4i0FIMNonLo+vXr+O677/D06VM4Oztj7NixCAoK0nSziEhLcRiFiIiIRMXLlRMREZGoGGwQERGRqBhsEBERkagYbBAREZGoGGwQERGRqBhsEBERkagYbBAREZGoGGwQERGRqBhsEBERkaj+B0ybihRFVheTAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 创建示例数据集\n",
    "data = {\n",
    "    'Region': ['North', 'North', 'South', 'South', 'East', 'East', 'West', 'West'],\n",
    "    'Product': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'],\n",
    "    'Sales': [100, 200, 150, 300, 250, 180, 120, 280]\n",
    "}\n",
    "\n",
    "df = pd.DataFrame(data)\n",
    "\n",
    "# 使用数据透视表转换数据\n",
    "pivot_table = df.pivot(index='Product', columns='Region', values='Sales')\n",
    "\n",
    "# 绘制热力图\n",
    "sns.heatmap(pivot_table, cmap='YlGnBu', annot=True, fmt='.0f')\n",
    "\n",
    "# 设置坐标轴标签\n",
    "plt.xlabel('Region')\n",
    "plt.ylabel('Product')\n",
    "\n",
    "# 设置标题\n",
    "plt.title('Sales Distribution by Region and Product')\n",
    "\n",
    "# 显示图形\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "6fff98fc3b3d81bd655c2cc48858186e4d9e2db7b515bf1c3221888f12a62f87"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
